// Code generated by MockGen. DO NOT EDIT.
// Source: internal/model/exchangerates/exchangerates.go

// Package mock_exchangerates is a generated GoMock package.
package mock_exchangerates

import (
	context "context"
	reflect "reflect"
	time "time"

	gomock "github.com/golang/mock/gomock"
	bottypes "github.com/ellavs/tg-bot-golang/internal/model/bottypes"
)

// MockCbrClient is a mock of CbrClient interface.
type MockCbrClient struct {
	ctrl     *gomock.Controller
	recorder *MockCbrClientMockRecorder
}

// MockCbrClientMockRecorder is the mock recorder for MockCbrClient.
type MockCbrClientMockRecorder struct {
	mock *MockCbrClient
}

// NewMockCbrClient creates a new mock instance.
func NewMockCbrClient(ctrl *gomock.Controller) *MockCbrClient {
	mock := &MockCbrClient{ctrl: ctrl}
	mock.recorder = &MockCbrClientMockRecorder{mock}
	return mock
}

// EXPECT returns an object that allows the caller to indicate expected use.
func (m *MockCbrClient) EXPECT() *MockCbrClientMockRecorder {
	return m.recorder
}

// LoadExchangeRates mocks base method.
func (m *MockCbrClient) LoadExchangeRates() (bottypes.ExchangeRate, time.Time, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "LoadExchangeRates")
	ret0, _ := ret[0].(bottypes.ExchangeRate)
	ret1, _ := ret[1].(time.Time)
	ret2, _ := ret[2].(error)
	return ret0, ret1, ret2
}

// LoadExchangeRates indicates an expected call of LoadExchangeRates.
func (mr *MockCbrClientMockRecorder) LoadExchangeRates() *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "LoadExchangeRates", reflect.TypeOf((*MockCbrClient)(nil).LoadExchangeRates))
}

// MockRatesDataStorage is a mock of RatesDataStorage interface.
type MockRatesDataStorage struct {
	ctrl     *gomock.Controller
	recorder *MockRatesDataStorageMockRecorder
}

// MockRatesDataStorageMockRecorder is the mock recorder for MockRatesDataStorage.
type MockRatesDataStorageMockRecorder struct {
	mock *MockRatesDataStorage
}

// NewMockRatesDataStorage creates a new mock instance.
func NewMockRatesDataStorage(ctrl *gomock.Controller) *MockRatesDataStorage {
	mock := &MockRatesDataStorage{ctrl: ctrl}
	mock.recorder = &MockRatesDataStorageMockRecorder{mock}
	return mock
}

// EXPECT returns an object that allows the caller to indicate expected use.
func (m *MockRatesDataStorage) EXPECT() *MockRatesDataStorageMockRecorder {
	return m.recorder
}

// GetLastExchangeRates mocks base method.
func (m *MockRatesDataStorage) GetLastExchangeRates(ctx context.Context) (bottypes.ExchangeRate, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetLastExchangeRates", ctx)
	ret0, _ := ret[0].(bottypes.ExchangeRate)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetLastExchangeRates indicates an expected call of GetLastExchangeRates.
func (mr *MockRatesDataStorageMockRecorder) GetLastExchangeRates(ctx interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLastExchangeRates", reflect.TypeOf((*MockRatesDataStorage)(nil).GetLastExchangeRates), ctx)
}

// InsertExchangeRatesToDate mocks base method.
func (m *MockRatesDataStorage) InsertExchangeRatesToDate(ctx context.Context, rates bottypes.ExchangeRate, period time.Time) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "InsertExchangeRatesToDate", ctx, rates, period)
	ret0, _ := ret[0].(error)
	return ret0
}

// InsertExchangeRatesToDate indicates an expected call of InsertExchangeRatesToDate.
func (mr *MockRatesDataStorageMockRecorder) InsertExchangeRatesToDate(ctx, rates, period interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertExchangeRatesToDate", reflect.TypeOf((*MockRatesDataStorage)(nil).InsertExchangeRatesToDate), ctx, rates, period)
}
